﻿using Common.Enums;
using Common.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Wallpaper.Models.DTOs.Requests.Wallpaper;
using Wallpaper.Models.DTOs.Responses.message;

namespace Wallpaper.Services.IService
{
    public interface IMessageService
    {
        /// <summary>
        /// 存储消息
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="wallpaperId"></param>
        /// <param name="wallpaperTitle"></param>
        /// <param name="isApproved"></param>
        /// <param name="reason"></param>
        /// <returns></returns>
        Task SendReviewNotificationAsync(string userId, string wallpaperId, string wallpaperTitle, WallpaperReviewStatus isApproved, string reason = null);

        /// <summary>
        /// 标记消息为已读
        /// </summary>
        Task MarkAsReadAsync(string userMessageId);

        
        /// <summary>
        /// 获取审核壁纸消息分页
        /// </summary>
        /// <returns></returns>
        Task<PagedResult<MessageResponse>> GetReviewWallpapersMessagesAsync(PageRequest pageRequest);
   
        Task<PagedResult<MessageResponse>> GetUserReviewWallpapersMessagesAsync(string userId, PageRequest pageRequest);
    }
}
